iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0

前言:

  • DestinationRule定義路由發生後應用於服務流量的策略

Istio DestinationRul

  • DestinationRul 是一個放置在virtualservice 後的規則,算是real service前的路由規則。
  • istio默認會使用輪詢策略,此外istio也支持如下負載均衡模型,可以在destination rule中使用這些模型,將請求分發的特定的服務或服務子集。
  • trafficPolicy下除了loadBalancer外還有一種portLevelSettings他可藉由不同的port去做定義該port流量得政策,此外也支援TLS。
  • 子集可覆蓋服務定義的流量政策使用,該子集由帶有標籤端點組成(子集指定的策略只有在路由規則明確向該子集發送流量後才會生)
  • 以下介紹一下trafficPolicy loadBalancer的幾種模式用來簡介於下面實例
    • Random:將請求轉發到一個隨機的實例上
    • Weighted:按照指定的百分比將請求轉發到實例上
    • Least requests:將請求轉發到具有最少請求數目的實例上

上面的幾項規則看看下面簡單範例:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: my-destination-rule
spec:
  host: my-svc 
  trafficPolicy:     #默認的策略模型為隨機
    loadBalancer:
      simple: RANDOM
  subsets:        
  - name: v1  #subset1流量轉發具有標籤version:v1的deployment對應服務上
    labels:
      version: v1
  - name: v2  #subset2流量轉發具有標籤version:v2的deployment對應服務上,指定策略輪詢
    labels:
      version: v2
    trafficPolicy:
      loadBalancer:
        simple: ROUND_ROBIN
  - name: v3   #subset3流量轉發具有標籤version:v3的deployment對應服務上
    labels:
      version: v3

註: 這邊解釋一下子集流量,每個子集由一個或多個labels定義,在上例子中V1與V3網路traffic策略為隨機(RANDOM)V2網路策略為輪詢(ROUND_ROBIN)導入對應label version。


上一篇
Istio virtualservice (三)
下一篇
Istio 金絲雀
系列文
淺談 Istio30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言